웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > php

[PHP] UTF-8에서 EUC-KR 변경 또는 EUC-KR에서 UTF-8, iconv()

Last Modified : 2017-11-15 / Created : 2014-11-08
47,678
View Count
PHP언어에서 한글 사용시 EUC-KR로 설정된 경우가 많습니다. 이런 경우 UTF-8 또는 다른 인코딩의 차이로 어려움을 겪을 수 있죠. 아래는 인코딩을 변환하는 방법에 대하여 알아봅니다.


# PHP에서 인코딩 변환하기, iconv()

문자 인코딩이 필요한 경우는 주로 UTF-8로 변경해야하는 경우가 다수입니다. 문자를 검색하는 경우에도 한글은 캐릭터당 2byte이기 때문에 찾거나 변경시 iconv()를 사용해 인코딩 변경한 후 실행하면 발생가능한 인코딩 에러에서 벗어날 수 있습니다. 그럼 아래 예제를 보세요.

! UTF-8에서 EUC-KR로 변경하는 방법
아래는 utf-8을 euc-kr로 변경하는 방법입니다.
<?php
  $test2 = iconv("UTF-8", "EUC-KR", $test);
?>


! EUC-KR에서 UTF-8로 변경하는 방법
반대로 euc-kr에서 utf-8로 변경할 수 있습니다.
<?php
  $test2 = iconv("EUC-KR", "UTF-8", $test);
?>

만약 strpos()를 사용해 문자열을 검색하거나 substr()를 사용해 문자열을 검색할때 오류가 나는 경우 UTF-8로 변경 후 사용하면 해결됩니다.

만약 한글로 된 문자열에 특정 문구가 포함되었는지 확인하는 작업이 필요하다면? strpos()함수를 사용해 알 수 있습니다. 하지만 한글이기 때문에 인코딩이 필요할 것입니다. 위에도 언급했지만 한글은 2byte 문자이기 때문에 에러가 발생할 수 있어 인코딩 후에 실행하는 것이 좋습니다. 아래 예제를 보세요.

<?php
  $str = "웹이즈프리닷컴";
  $test = iconv("EUC-KR", "UTF-8", $str);
  $result = strpos($test, '이즈');

  echo $result;
  // strpos() 함수는 위치를 반환하므로 2를 출력
?>

여기까지 PHP를 사용한 인코딩 변환에 대하여 간단하게 알아보았습니다.

Previous

[PHP] mail() 함수, 이메일 발송 함수 알아보기

Previous

[PHP] 서버에 특정 파일이 있는지 확인, file_exists(), is_file(), file()